package com.security.passwordencoder;

import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * @USER: ysx
 * @CREATE: 2021/1/25 13:19
 *
 * 凭证匹配器
 * 专门用于做认证流程的凭证校验使用的类型
 * 其中有两个核心方法
 * 1、encode - 把明文密码，加密成密文密码
 * 2、matches - 校验明文和密文是否匹配
 */
public class SimplePasswordEncoder implements PasswordEncoder {
    /**
     * 加密逻辑
     * @param charSequence 明文字符串。就是页面收集的原密码
     * @return
     */
    @Override
    public String encode(CharSequence charSequence) {
        System.out.println("SimplePasswordEncoder - 加密逻辑执行");
        return new String(charSequence.toString());
    }

    /**
     * 匹配逻辑
     * @param charSequence 明文字符串。就是页面收集的原密码
     * @param s 密文，存储在数据源中的密码
     * @return
     */
    @Override
    public boolean matches(CharSequence charSequence, String s) {
        System.out.println("SimplePasswordEncoder - 密码匹配逻辑执行");
        return false;
    }
}
